package com.esteel.settlement.pa.packet;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;
 
/**
 *请求包：监管系统－> 交易网
 * 银行端发起 银行复核通知
 * zhouwentong
 */
@XmlRootElement(name="Result") 
@XmlAccessorType(XmlAccessType.FIELD)
public class BankReviewNoticeBP1326 extends PaPacket{

	private static final long serialVersionUID = 4792673312970481660L;
	//资金汇总账号
	@XmlElement(name="SupAcctId")
	@Length(max=32)
	@NotEmpty
	private String supAcctId;
	//功能标志  1：支付复核
	@XmlElement(name="FuncFlag")
	private int funcFlag;
	//复核结果  Y：复核通过 N：复核拒绝
	@XmlElement(name="CheckResult")
	private String checkResult;
	//子账户  复核人的
	@XmlElement(name="CustAcctId")
	@Length(max=32)
	@NotEmpty
	private String custAcctId;
	//会员代码 复核人的
	@XmlElement(name="ThirdCustId")
	@Length(max=32)
	@NotEmpty
	private String thirdCustId;
	//交易金额
	@XmlElement(name="TranAmount")
	private double tranAmount;
	//手续费金额
	@XmlElement(name="HandFee")
	private double handFee;
	//币种 默认：RMB
	@XmlElement(name="CcyCode")
	@Length(max=3)
	@NotEmpty
	private String ccyCode;
	//订单号
	@XmlElement(name="ThirdHtId")
	@Length(max=30)
	@NotEmpty
	private String thirdHtId;
	//原支付指令号
	@XmlElement(name="PaySerialNo")
	@Length(max=20)
	@NotEmpty
	private String paySerialNo;
	//备注
	@XmlElement(name="Note")
	@Length(max=120)
	@NotEmpty
	private String note;
	
	
	public String getSupAcctId() {
		return supAcctId;
	}
	public void setSupAcctId(String supAcctId) {
		this.supAcctId = supAcctId;
	}
	public int getFuncFlag() {
		return funcFlag;
	}
	public void setFuncFlag(int funcFlag) {
		this.funcFlag = funcFlag;
	}
	public String getCheckResult() {
		return checkResult;
	}
	public void setCheckResult(String checkResult) {
		this.checkResult = checkResult;
	}
	public String getCustAcctId() {
		return custAcctId;
	}
	public void setCustAcctId(String custAcctId) {
		this.custAcctId = custAcctId;
	}
	public String getThirdCustId() {
		return thirdCustId;
	}
	public void setThirdCustId(String thirdCustId) {
		this.thirdCustId = thirdCustId;
	}
	public double getTranAmount() {
		return tranAmount;
	}
	public void setTranAmount(double tranAmount) {
		this.tranAmount = tranAmount;
	}
	public double getHandFee() {
		return handFee;
	}
	public void setHandFee(double handFee) {
		this.handFee = handFee;
	}
	public String getCcyCode() {
		return ccyCode;
	}
	public void setCcyCode(String ccyCode) {
		this.ccyCode = ccyCode;
	}
	public String getThirdHtId() {
		return thirdHtId;
	}
	public void setThirdHtId(String thirdHtId) {
		this.thirdHtId = thirdHtId;
	}
	public String getPaySerialNo() {
		return paySerialNo;
	}
	public void setPaySerialNo(String paySerialNo) {
		this.paySerialNo = paySerialNo;
	}
	public String getNote() {
		return note;
	}
	public void setNote(String note) {
		this.note = note;
	}
	@Override
	protected String[] order() {
		String[] strs = {"supAcctId","funcFlag","checkResult","custAcctId","thirdCustId","tranAmount","handFee","ccyCode","thirdHtId","paySerialNo","note","reserve"};
		return strs;
	}
	@Override
	protected String tranFunc() {
		return "1326";
	}
}
